It has been known that an offset of a current detector is a cause of a torque ripple and affects a precision of positioning and a rotational irregularity in a low velocity rotation region, and various methods have been taken for an offset adjustment of a current detector.
FIG. 14 shows a structure of a conventional controlling device for an AC motor, which will be explained with reference to FIG. 14. FIG. 14 is a control block diagram such as the one found in "Practice of Logic and Design of AC Servo System," published by Sogo Denshi Publishing Co., Ltd., page 86. For simplicity, a control loop of a position is omitted.
In FIG. 14, reference numeral 1 denotes a brushless DC motor; 2, an encoder; and 3, a PWM inverter for driving the brushless DC motor 1. Reference numeral 4 denotes a current detector that detects currents iua, iva and iwa flowing to the brushless DC motor by output voltages Vua, Vva and Vwa of the PWM inverter 3. In FIG. 14, a mechanism for detecting two phase currents iva and iwa is shown.
Reference numeral 5 denotes a velocity and position signal processor that outputs a mechanical angular velocity (actual velocity) wrm, an electrical angle velocity wre and an electrical angle .theta.re upon receiving a signal from the encoder 2. Reference numeral 6 denotes a sine wave generator that inputs the electrical angle .theta.re output by the velocity and position signal processor 5 and outputs sin.theta.re and cos.theta.re to coordinate converters 7 and 17 hereinafter referred to. Reference numeral 7 denotes a three phase/d-q coordinate converter that inputs the currents iva and iwa detected by the current detector 4 and converts the currents to an exciting split current ida and a torque split current iqa of a rotor coordinate system by the output of the sine wave generator 6.
Reference numeral 8 denotes a subtractor that calculates a velocity deviation of a velocity command wrm* and the actual velocity wrm. Reference numeral 9 denotes a velocity controller that inputs the velocity deviation obtained from the subtractor 8 and outputs a torque split current command iqa*. The velocity controller 9 includes, for example, a proportional plus integration PI. Reference numeral 10 denotes a subtractor that calculates the difference between the torque split current command iqa* and the torque split current iqa output from the three phase/d-q coordinate converter 7. Reference numeral 11 denotes a q axis current controller that inputs a q axis current deviation output by the subtractor 10 and outputs a non-interference q axis voltage command Vqz*. The q axis current controller 11 includes, for example, a proportional plus integration PI.
Reference numeral 12 denotes a subtractor that calculates the difference between a d axis current command ida* and the exciting split current ida output from the three phase/d-q coordinate converter 7. Reference numeral 13 denotes a d axis current controller that inputs the d axis current deviation output from the subtractor 12 and outputs a non-interference d axis voltage command Vdz*. Reference numeral 14 denotes a non-interference controller that conducts non-interference control in cooperation with adders 15 and 16.
Now, the non-interferential control is briefly explained.
The brushless DC motor 1 has velocity electromotive forces interfering each other between the d and q axes. They affect the exciting split current ida and the torque split current iqa but cannot be directly controlled. Hence, a control in which the velocity electromotive force are calculated and an interference therebetween is then cancelled is referred to as a non-interference control.
More specifically, the non-interference control is conducted by the d axis voltage command Vda* and the q axis voltage command Vqa* as shown in the formulas below. EQU Vda*=Vdz*-wre.multidot.La.multidot.iqa (1) EQU Vqa*=Vqz*+wre(.phi.fa+La.multidot.ida) (2)
where .phi.fa is the number of flux inter-linkage of an armature winding and La is a self inductance of an armature winding.
That is, in a non-interference control, the d axis voltage command Vda* and the q axis voltage command Vqa* are calculated by adding -wre.multidot.La.multidot.iqa and wre.multidot.(.phi.fa+La.multidot.ida) which is components of a velocity electromotive force to the non-interference d- and q axis voltage commands Vda* and Vqz*. By doing so, an interference by the q axis current (torque split current) iqa can be prevented by -wre.multidot.La.multidot.iqa which is a component of a velocity electromotive force, for example, in the d axis.
By the d axis voltage command Vda* and the q axis voltage command Vqa* calculated in this way and the output from the sine wave generator 6, three phase AC voltage commands Vua*, Vva* and Vwa* are coordinate converted to be output in the d-q/three phase coordinate converter 17, and the inverter 3 conducts the PWM and supplies a voltage to the brushless DC motor 1.
Further, an offset may exist in the above mentioned current detector 4. The offset is irrelevant to the action of the motor 1, but is an offset portion relevant to the current detector 4 and a noise portion that is detected even during stoppage of the motor 1. The current offset generates a ripple portion that may vary depending on the electrical angle in respect of the torque of the motor 1, and generates one torque ripple for respective one rotations of the electrical angle.
In some conventional art, in order to compensate for the offset in the current detector 4, a current feedback is calculated by subtracting the offset from the current value detected at the time of current control, given that the value output from the current detector 4 be the offset volume of the current detector 4, in an open status in which no current flows to the motor 1 during an emergency stoppage such as a time when a power source is turned on.
However, such a met hod has a problem that it cannot cope with a drift caused by a temperature change of the current detector 4. The current detector 4 usually includes a current/voltage converter and an AID converter. These electronic components change its characteristics corresponding to a temperature, which causes a drift. The offset of the current detector 4 changes due to the drift as time passes.
In order to cope with the variation of the offset due to the temperature drift, several methods has been devised.
For example, in the method for controlling an AC servo motor described in Japanese Patent Application Laid-Open No. Hei 8-47280, a method for calculating and renewing an offset by detecting an actual current each time when a voltage command is set zero is proposed. However, according to this method, a motor instantly rotates upon turning on a power source and, when it continues to rotate for approximately five minutes, an offset cannot be compensated for during that period and a torque ripple is generated. Only a few problems reside in an application in which a voltage command is frequently set zero, i.e., a motor is stopped, but applications are limited.
In addition, in a motor drive device described in Japanese Patent Application Laid-Open No. Hei 6-276781, a method for estimating an offset value at the time of outputting a zero torque is proposed. This method also has a similar problem because it can compensate for an offset only in the state in which a motor is stopped as in Japanese Patent Application Laid-Open No. Hei 8-47280 as described above.
As has been explained, the above mentioned controlling device for an AC motor has the following problems:
(1) A torque ripple is generated due to an offset of the current detector. PA1 (2) An offset of the current detector changes due to a temperature drift as time passes. PA1 (3) An offset cancellation value can be estimated again only in a limited state such as a motor stoppage. That is, a torque ripple caused by an offset that produces temperature drifts during rotation of a motor cannot be reduced.
An object of the present invention is to solve the above mentioned drawbacks and to provide a controlling device for an AC motor-which estimates an offset of a current detector, compensates for a current detection value and does not generate a torque ripple by the current detector while a motor is actually operating, i.e., even at the time of rotation and the presence of load.